package com.atstudying.common.valid;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * @author Mr.zhneg
 * @create 2020-10-14-15:13
 */
//原信息数据
 //可以标注在那些位置
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
//运行时获取到
@Retention(RetentionPolicy.RUNTIME)
@Documented
//使用哪个校验器进行校验
@Constraint(
        // Class<? extends ConstraintValidator<?, ?>>[] validatedBy();
        //可以指定多个不同的校验器，适配不同类型的校验
        validatedBy = {ListValueConstraintValidator.class}
)
public @interface ListValue {
   //校验出错以后去哪取（ValidationMessages.properties)取到javax.validation.constraints.NotNull.message这一个数据
 //根据上面的思路，我们就可以自己在resources中创建ValidationMessages.properties，配置如下的内容
    String message() default "{com.atstudying.common.valid.ListValue.message}";

    //可以实现分组校验
    Class<?>[] groups() default {};

    //自定义一些负载信息
    Class<? extends Payload>[] payload() default {};
    int [] vals() default {};
}
